using System;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("CameraUtils")]
	public class CameraUtils : MonoClass
	{
		public CameraUtils(IntPtr address, string className)
			: base(address, className)
		{
		}

		public CameraUtils(IntPtr address)
			: this(address, "CameraUtils")
		{
		}

		public static Camera FindFirstByLayer(int layer)
		{
			return MonoClass.smethod_16<Camera>(TritonHs.MainAssemblyPath, "", "CameraUtils", "FindFirstByLayer", new Class276.Enum20[1] { Class276.Enum20.I4 }, new object[1] { layer });
		}

		public static Camera FindFirstByLayer(GameLayer layer)
		{
			return MonoClass.smethod_16<Camera>(TritonHs.MainAssemblyPath, "", "CameraUtils", "FindFirstByLayer", new Class276.Enum20[1] { Class276.Enum20.ValueType }, new object[1] { layer });
		}

		public static Camera FindFirstByLayerMask(LayerMask mask)
		{
			return MonoClass.smethod_15<Camera>(TritonHs.MainAssemblyPath, "", "CameraUtils", "FindFirstByLayerMask", new object[1] { mask });
		}

		public static Camera FindFullScreenEffectsCamera(bool activeOnly)
		{
			return MonoClass.smethod_15<Camera>(TritonHs.MainAssemblyPath, "", "CameraUtils", "FindFullScreenEffectsCamera", new object[1] { activeOnly });
		}

		public static Plane CreateTopPlane(Camera camera)
		{
			return MonoClass.smethod_14<Plane>(TritonHs.MainAssemblyPath, "", "CameraUtils", "CreateTopPlane", new object[1] { camera });
		}

		public static Plane CreateBottomPlane(Camera camera)
		{
			return MonoClass.smethod_14<Plane>(TritonHs.MainAssemblyPath, "", "CameraUtils", "CreateBottomPlane", new object[1] { camera });
		}

		public static Bounds GetNearClipBounds(Camera camera)
		{
			return MonoClass.smethod_14<Bounds>(TritonHs.MainAssemblyPath, "", "CameraUtils", "GetNearClipBounds", new object[1] { camera });
		}

		public static Bounds GetFarClipBounds(Camera camera)
		{
			return MonoClass.smethod_14<Bounds>(TritonHs.MainAssemblyPath, "", "CameraUtils", "GetFarClipBounds", new object[1] { camera });
		}

		public static Rect CreateGUIViewportRect(Camera camera, Component topLeft, Component bottomRight)
		{
			return MonoClass.smethod_11<Rect>(TritonHs.MainAssemblyPath, "", "CameraUtils", "CreateGUIViewportRect", new Class276.Enum20[3]
			{
				Class276.Enum20.Class,
				Class276.Enum20.Class,
				Class276.Enum20.Class
			}, new object[3] { camera, topLeft, bottomRight });
		}

		public static Rect CreateGUIViewportRect(Camera camera, GameObject topLeft, Component bottomRight)
		{
			return MonoClass.smethod_11<Rect>(TritonHs.MainAssemblyPath, "", "CameraUtils", "CreateGUIViewportRect", new Class276.Enum20[3]
			{
				Class276.Enum20.Class,
				Class276.Enum20.Class,
				Class276.Enum20.Class
			}, new object[3] { camera, topLeft, bottomRight });
		}

		public static Rect CreateGUIViewportRect(Camera camera, Component topLeft, GameObject bottomRight)
		{
			return MonoClass.smethod_11<Rect>(TritonHs.MainAssemblyPath, "", "CameraUtils", "CreateGUIViewportRect", new Class276.Enum20[3]
			{
				Class276.Enum20.Class,
				Class276.Enum20.Class,
				Class276.Enum20.Class
			}, new object[3] { camera, topLeft, bottomRight });
		}

		public static Rect CreateGUIViewportRect(Camera camera, GameObject topLeft, GameObject bottomRight)
		{
			return MonoClass.smethod_11<Rect>(TritonHs.MainAssemblyPath, "", "CameraUtils", "CreateGUIViewportRect", new Class276.Enum20[3]
			{
				Class276.Enum20.Class,
				Class276.Enum20.Class,
				Class276.Enum20.Class
			}, new object[3] { camera, topLeft, bottomRight });
		}

		public static Rect CreateGUIViewportRect(Camera camera, Vector3 worldTopLeft, Vector3 worldBottomRight)
		{
			return MonoClass.smethod_11<Rect>(TritonHs.MainAssemblyPath, "", "CameraUtils", "CreateGUIViewportRect", new Class276.Enum20[3]
			{
				Class276.Enum20.Class,
				Class276.Enum20.ValueType,
				Class276.Enum20.ValueType
			}, new object[3] { camera, worldTopLeft, worldBottomRight });
		}

		public static Rect CreateGUIScreenRect(Camera camera, Component topLeft, Component bottomRight)
		{
			return MonoClass.smethod_11<Rect>(TritonHs.MainAssemblyPath, "", "CameraUtils", "CreateGUIScreenRect", new Class276.Enum20[3]
			{
				Class276.Enum20.Class,
				Class276.Enum20.Class,
				Class276.Enum20.Class
			}, new object[3] { camera, topLeft, bottomRight });
		}

		public static Rect CreateGUIScreenRect(Camera camera, GameObject topLeft, Component bottomRight)
		{
			return MonoClass.smethod_11<Rect>(TritonHs.MainAssemblyPath, "", "CameraUtils", "CreateGUIScreenRect", new Class276.Enum20[3]
			{
				Class276.Enum20.Class,
				Class276.Enum20.Class,
				Class276.Enum20.Class
			}, new object[3] { camera, topLeft, bottomRight });
		}

		public static Rect CreateGUIScreenRect(Camera camera, Component topLeft, GameObject bottomRight)
		{
			return MonoClass.smethod_11<Rect>(TritonHs.MainAssemblyPath, "", "CameraUtils", "CreateGUIScreenRect", new Class276.Enum20[3]
			{
				Class276.Enum20.Class,
				Class276.Enum20.Class,
				Class276.Enum20.Class
			}, new object[3] { camera, topLeft, bottomRight });
		}

		public static Rect CreateGUIScreenRect(Camera camera, GameObject topLeft, GameObject bottomRight)
		{
			return MonoClass.smethod_11<Rect>(TritonHs.MainAssemblyPath, "", "CameraUtils", "CreateGUIScreenRect", new Class276.Enum20[3]
			{
				Class276.Enum20.Class,
				Class276.Enum20.Class,
				Class276.Enum20.Class
			}, new object[3] { camera, topLeft, bottomRight });
		}

		public static Rect CreateGUIScreenRect(Camera camera, Vector3 worldTopLeft, Vector3 worldBottomRight)
		{
			return MonoClass.smethod_11<Rect>(TritonHs.MainAssemblyPath, "", "CameraUtils", "CreateGUIScreenRect", new Class276.Enum20[3]
			{
				Class276.Enum20.Class,
				Class276.Enum20.ValueType,
				Class276.Enum20.ValueType
			}, new object[3] { camera, worldTopLeft, worldBottomRight });
		}

		public static GameObject CreateInputBlocker(Camera camera)
		{
			return MonoClass.smethod_16<GameObject>(TritonHs.MainAssemblyPath, "", "CameraUtils", "CreateInputBlocker", new Class276.Enum20[1] { Class276.Enum20.Class }, new object[1] { camera });
		}

		public static GameObject CreateInputBlocker(Camera camera, string name)
		{
			return MonoClass.smethod_16<GameObject>(TritonHs.MainAssemblyPath, "", "CameraUtils", "CreateInputBlocker", new Class276.Enum20[2]
			{
				Class276.Enum20.Class,
				Class276.Enum20.String
			}, new object[2] { camera, name });
		}

		public static GameObject CreateInputBlocker(Camera camera, string name, Component parent)
		{
			return MonoClass.smethod_16<GameObject>(TritonHs.MainAssemblyPath, "", "CameraUtils", "CreateInputBlocker", new Class276.Enum20[3]
			{
				Class276.Enum20.Class,
				Class276.Enum20.String,
				Class276.Enum20.Class
			}, new object[3] { camera, name, parent });
		}

		public static GameObject CreateInputBlocker(Camera camera, string name, Component parent, float worldOffset)
		{
			return MonoClass.smethod_16<GameObject>(TritonHs.MainAssemblyPath, "", "CameraUtils", "CreateInputBlocker", new Class276.Enum20[4]
			{
				Class276.Enum20.Class,
				Class276.Enum20.String,
				Class276.Enum20.Class,
				Class276.Enum20.R4
			}, new object[4] { camera, name, parent, worldOffset });
		}

		public static GameObject CreateInputBlocker(Camera camera, string name, Component parent, Component relative)
		{
			return MonoClass.smethod_16<GameObject>(TritonHs.MainAssemblyPath, "", "CameraUtils", "CreateInputBlocker", new Class276.Enum20[4]
			{
				Class276.Enum20.Class,
				Class276.Enum20.String,
				Class276.Enum20.Class,
				Class276.Enum20.Class
			}, new object[4] { camera, name, parent, relative });
		}

		public static GameObject CreateInputBlocker(Camera camera, string name, Component parent, Component relative, float worldOffset)
		{
			return MonoClass.smethod_16<GameObject>(TritonHs.MainAssemblyPath, "", "CameraUtils", "CreateInputBlocker", new Class276.Enum20[5]
			{
				Class276.Enum20.Class,
				Class276.Enum20.String,
				Class276.Enum20.Class,
				Class276.Enum20.Class,
				Class276.Enum20.R4
			}, new object[5] { camera, name, parent, relative, worldOffset });
		}

		public static float ScreenToWorldDist(Camera camera, float screenDist)
		{
			return MonoClass.smethod_11<float>(TritonHs.MainAssemblyPath, "", "CameraUtils", "ScreenToWorldDist", new Class276.Enum20[2]
			{
				Class276.Enum20.Class,
				Class276.Enum20.R4
			}, new object[2] { camera, screenDist });
		}

		public static float ScreenToWorldDist(Camera camera, float screenDist, float worldDist)
		{
			return MonoClass.smethod_11<float>(TritonHs.MainAssemblyPath, "", "CameraUtils", "ScreenToWorldDist", new Class276.Enum20[3]
			{
				Class276.Enum20.Class,
				Class276.Enum20.R4,
				Class276.Enum20.R4
			}, new object[3] { camera, screenDist, worldDist });
		}

		public static float ScreenToWorldDist(Camera camera, float screenDist, Vector3 worldPoint)
		{
			return MonoClass.smethod_11<float>(TritonHs.MainAssemblyPath, "", "CameraUtils", "ScreenToWorldDist", new Class276.Enum20[3]
			{
				Class276.Enum20.Class,
				Class276.Enum20.R4,
				Class276.Enum20.ValueType
			}, new object[3] { camera, screenDist, worldPoint });
		}

		public static Vector3 GetPosInFrontOfCamera(Camera camera, float worldDistance)
		{
			return MonoClass.smethod_11<Vector3>(TritonHs.MainAssemblyPath, "", "CameraUtils", "GetPosInFrontOfCamera", new Class276.Enum20[2]
			{
				Class276.Enum20.Class,
				Class276.Enum20.R4
			}, new object[2] { camera, worldDistance });
		}

		public static Vector3 GetPosInFrontOfCamera(Camera camera, Vector3 worldPoint)
		{
			return MonoClass.smethod_11<Vector3>(TritonHs.MainAssemblyPath, "", "CameraUtils", "GetPosInFrontOfCamera", new Class276.Enum20[2]
			{
				Class276.Enum20.Class,
				Class276.Enum20.ValueType
			}, new object[2] { camera, worldPoint });
		}

		public static Vector3 GetPosInFrontOfCamera(Camera camera, Vector3 worldPoint, float worldOffset)
		{
			return MonoClass.smethod_11<Vector3>(TritonHs.MainAssemblyPath, "", "CameraUtils", "GetPosInFrontOfCamera", new Class276.Enum20[3]
			{
				Class276.Enum20.Class,
				Class276.Enum20.ValueType,
				Class276.Enum20.R4
			}, new object[3] { camera, worldPoint, worldOffset });
		}

		public static Vector3 GetNearestPosInFrontOfCamera(Camera camera, float worldOffset)
		{
			return MonoClass.smethod_14<Vector3>(TritonHs.MainAssemblyPath, "", "CameraUtils", "GetNearestPosInFrontOfCamera", new object[2] { camera, worldOffset });
		}
	}
}
